@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

REM 检查命令行参数
set "server_type=%1"
if "%server_type%"=="" set "server_type=menu"

REM 检查 Python
echo [1/3] 检查 Python 环境...
python --version >nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ Python 未安装或未添加到 PATH
    echo 请安装 Python 3.10+ 并添加到系统 PATH
    pause
    exit /b 1
)
python --version
echo ✅ Python 环境正常
echo.

REM 检查后端依赖（仅对需要 Tornado 的服务器）
if /i "%server_type%"=="simple" goto check_tornado
if /i "%server_type%"=="geppetto" goto check_tornado
if /i "%server_type%"=="menu" goto check_tornado
goto skip_tornado

:check_tornado
echo [2/3] 检查后端依赖...
python -c "import tornado" >nul 2>&1
if %errorlevel% neq 0 (
    echo ⚠️  Tornado 未安装，正在安装...
    pip install tornado
    if %errorlevel% neq 0 (
        echo ❌ Tornado 安装失败
        pause
        exit /b 1
    )
)
echo ✅ 后端依赖正常
echo.
goto start_server

:skip_tornado
echo [2/3] 跳过依赖检查（Flask 模式）
echo.

:start_server
REM 根据参数或菜单选择启动服务器
if /i "%server_type%"=="simple" goto simple
if /i "%server_type%"=="geppetto" goto geppetto
if /i "%server_type%"=="flask" goto flask
if /i "%server_type%"=="menu" goto menu
goto menu

:menu
echo [3/3] 选择服务器类型...
echo.
echo 请选择要启动的服务器:
echo   1. Simple Server (简化版，不依赖 NetPyNE，端口 8888)
echo   2. Geppetto Server (完整版，依赖 NetPyNE，端口 8888)
echo   3. Flask Server (Flask API，端口 5000)
echo.
set /p choice="请输入选项 (1/2/3，默认 1): "
if "%choice%"=="" set choice=1
if "%choice%"=="1" goto simple
if "%choice%"=="2" goto geppetto
if "%choice%"=="3" goto flask
goto simple

:simple
echo.
echo ========================================
echo   启动 Simple Server
echo ========================================
echo.
echo WebSocket URL: ws://localhost:8888/geppetto
echo Health Check: http://localhost:8888/health
echo.
echo 按 Ctrl+C 停止服务器
echo ========================================
echo.
python simple_server.py
goto end

:geppetto
echo.
echo ========================================
echo   启动 Geppetto Server
echo ========================================
echo.
echo WebSocket URL: ws://localhost:8888/geppetto
echo Health Check: http://localhost:8888/health
echo.
echo 按 Ctrl+C 停止服务器
echo ========================================
echo.
python start_server.py
goto end

:flask
echo.
echo ========================================
echo   启动 Flask Server
echo ========================================
echo.
echo API URL: http://localhost:5000
echo Health Check: http://localhost:5000/health
echo.
echo 按 Ctrl+C 停止服务器
echo ========================================
echo.
python app.py
goto end

:end
if "%server_type%"=="menu" pause
